#include <stdio.h>

int main()
{
    // = :赋值符号
    // int a = 10; // 初始化：所有的变量在定义时都要初始化：避免垃圾值对代码产生影响
    //+ - * /：整除，向下取整
    // float a = 10;
    // a = 1.0 * 3 / 2; // 想除除出整数，前面加 1.0*
    // a += 5;          // += :自加    -=    *=   /=

    // int a = 10 % 3; //% 取余
    // a %= 3;         // 对a与3取余

    // int a = 10;
    // a++;         // a自增1
    // ++a;         //
    // int b = a++; // 先给值，再自加；输出b=10；
    // int b = ++a; // 先自加，再给变量；输出b=11

    // int a = 10;
    // int b = a++ + a++; // a=12,b=21(前面10，后面11)
    // int b = a++ + ++a; // a=12,b=22;

    // 判断奇偶：&1
    // int a = 3;
    // printf("%d\n", (a & 1) == 0);
    // return 0;

    // 交换两个变量的值
    // 法一：找中间变量
    // 法二：数轴法
    // 法三：异或
    // （两值相等时注意）
    // int a = 4;
    // int b = 5;
    // a = a ^ b;
    // b = a ^ b;
    // a = a ^ b;

    // printf("%d\n", ~-1); //-1取反是0，负数用补码

    // 求两个数的平均数
    int a = 10;
    int b = 20;
    // int c = a + (b - a) / 2;//求平均数的标准写法：防止溢出（a+b）/2 a,b的值很大时可能会溢出
    int c = (a & b) + ((a ^ b) >> 1); // 前面取相同位置上的平均值，后面是不同位置上的平均数（>>1 除2）

    int c = a > b ? a : b;  //三目运算符的应用示例 



    return 0;
}